/**
 * 
 */
package com.yidu.utils;

import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;

/**
 * 文件工具类
 * @author liandyao
 * @date 2017年10月12日 下午3:28:42
 * @version 1.0
 */
@Component
public class FileTools {

	@Resource
	private Config config ;
	/**
	 * 需要保存的文件地址和文件
	 * @param path 传入的地址名称,例如,会员模块,传入的地址是member,也可以是member/2017/这样的多重文件夹
	 * @param file
	 * @throws IOException 、
	 * @throws IllegalStateException 
	 */
	public String saveFile(String path, MultipartFile file) throws IllegalStateException, IOException{
		
		String OriFileName = file.getOriginalFilename();//原文件名
		System.out.println(OriFileName.indexOf("."));
		//得到后缀
		String hz = OriFileName.split("\\.")[1];
		//新文件名
		String newFileName = Tools.getTimeStamp()+"_"+Tools.getRandomString(8)+"."+hz;
		
		String targetPath = config.getDir() ; //存储的目标地址
		if(Tools.isEmpty(targetPath)){ //如果配置的文件为空
			return "未配置文件存储文件夹";
		}
		File fileNew=new File(targetPath+"/"+path);
		if(!fileNew.exists()){
			fileNew.mkdirs();//创建新的文件夹
		}
		
		
		String dataBasePath = path+"/"+newFileName;//数据库保存地址
		targetPath +="/"+dataBasePath;
		File targetFile = new File(targetPath);
		file.transferTo(targetFile);
		return config.getPath()+dataBasePath;
	}
	
}
